freeslot(
	"MT_BLUE_CARNVOUR",
		"SPR_BCRV",
		"S_BLUE_CARNVOUR_STND1",
		"S_BLUE_CARNVOUR_STND2",
		"S_BLUE_CARNVOUR_STND3",
		"S_BLUE_CARNVOUR_ATK1",
		"S_BLUE_CARNVOUR_ATK2",
		"S_BLUE_CARNVOUR_ZZZ",
	"MT_SEED_F",
		"SPR_SMTJ",
		"S_SEED_ATK"
)

mobjinfo[MT_BLUE_CARNVOUR]={
	doomednum = 1561,
	spawnstate = S_BLUE_CARNVOUR_STND1,
	seestate = S_BLUE_CARNVOUR_STND1,
	deathstate = S_XPLD1,
	deathsound = sfx_evyekd,
	spawnhealth = 1,
	reactiontime = 8,
	painchance = 1000,
	missilestate = S_BLUE_CARNVOUR_ATK1,
	attacksound = sfx_s3k77,
	raisestate = MT_SEED_F,
	speed = 0,
	radius = 16*FRACUNIT,
	height = 48*FRACUNIT,
	mass = 100,
	damage = 1,
	flags = MF_ENEMY|MF_SPECIAL|MF_SHOOTABLE
}

states[S_BLUE_CARNVOUR_STND1]={SPR_BCRV, A, 4, A_Chase, 0, 0, S_BLUE_CARNVOUR_STND2}
states[S_BLUE_CARNVOUR_STND2]={SPR_BCRV, B, 4, A_Chase, 0, 0, S_BLUE_CARNVOUR_STND3}
states[S_BLUE_CARNVOUR_STND3]={SPR_BCRV, C, 4, A_Chase, 0, 0, S_BLUE_CARNVOUR_STND1}

states[S_BLUE_CARNVOUR_ATK1]={SPR_BCRV, A, 1, A_CheckRange, 1000, S_BLUE_CARNVOUR_ATK2, S_BLUE_CARNVOUR_STND1}
states[S_BLUE_CARNVOUR_ATK2]={SPR_BCRV, D, 20, A_ShootBullet, 0, 0, S_BLUE_CARNVOUR_STND2}

states[S_BLUE_CARNVOUR_ZZZ]={SPR_BCRV, E, 700, None, 0, 0, S_BLUE_CARNVOUR_STND1}

mobjinfo[MT_SEED_F]={
	doomednum = -1,
	spawnstate = S_SEED_ATK,
	spawnhealth = 1,
	reactiontime = 32,
	deathstate = S_XPLD1,
	speed = 20*FRACUNIT,
	radius = 15*FRACUNIT,
	height = 15*FRACUNIT,
	mass = 100,
	flags = MF_MISSILE|MF_SHOOTABLE|MF_NOBLOCKMAP|MF_NOGRAVITY
}

states[S_SEED_ATK]={SPR_SMTJ, A, -1, None, 0, 0, S_NULL}

addHook("ShouldDamage", function(target, inflictor, source, damage)
	if not (inflictor ~= nil and inflictor.valid and inflictor.flags & MF_FIRE)
		target.state = S_BLUE_CARNVOUR_ZZZ
		return false
	end
end, MT_BLUE_CARNVOUR)

COM_AddCommand("spawn", function(p)
	if p and p.mo
		P_SpawnMobj(p.mo.x + 100*FRACUNIT, p.mo.y + 100*FRACUNIT, p.mo.z+10*FRACUNIT, MT_BLUE_CARNVOUR)
	end
end, 0)